38. text.insert(tkinter.INSERT, time.strftime('%Y-%m-%d %H:%M:%S', time.loc
altime()) + '\n'+'我(群发)说:' + sendStr+'\n')
39. #将消息发给服务器,添加“:”分割是要方便服务器端用正则表达式分出要发送的用户名和要发
送的消息
40. sendStr = friend + ":" + sendStr+"\n"
41. ck.send(sendStr.encode("utf-8"))
42.
43. def Exit():
44. #我在服务器端定义了接收到“exit”就判定该用户下线,并删掉该用户的资料
45. sendStr = "exit" + ":" + ""
46. ck.send(sendStr.encode("utf-8"))
47. text.insert(tkinter.INSERT, "您已下线,如需接收信息请重新登录。\n")
48. #下面是界面
49. labelUse = tkinter.Label(win, text="userName").grid(row=0, column=0)
50. euser = tkinter.Variable()
51. entryUser = tkinter.Entry(win, textvariable=euser).grid(row=0, column=1)
52.
53. labelIp = tkinter.Label(win, text="服务器 ip").grid(row=1, column=0)
54. eip = tkinter.Variable()
55. entryIp = tkinter.Entry(win, textvariable=eip).grid(row=1, column=1)
56.
57. labelPort = tkinter.Label(win, text="port").grid(row=2, column=0)
58. eport = tkinter.Variable()
59. entryPort = tkinter.Entry(win, textvariable=eport).grid(row=2, column=1)
60.
61. button = tkinter.Button(win, text="登录
", command=connectServer).grid(row=0, column=2)
62.
63. text = tkinter.Text(win, height=10, width=40)
64. labeltext= tkinter.Label(win, text="显示消息").grid(row=4, column=0)
65. text.grid(row=4, column=1)
66.
67. esend = tkinter.Variable()
68. labelesend = tkinter.Label(win, text="发送的消息").grid(row=5, column=0)
69. entrySend = tkinter.Entry(win, textvariable=esend).grid(row=5, column=1)
70.
71. efriend = tkinter.Variable()
72. labelefriend= tkinter.Label(win, text="发给谁").grid(row=6, column=0)
73. entryFriend = tkinter.Entry(win, textvariable=efriend).grid(row=6, column=1)
74. button2 = tkinter.Button(win, text="发送
", command=sendMail).grid(row=6, column=2)
75. button2 = tkinter.Button(win, text="下线", command=Exit).grid(row=2, column=2)
76. win.mainloop()
77. # 注意,loop 因为是循环的意思,window.mainloop 就会让 window 不断的刷新,如果没有